from sqlalchemy import create_engine, text
from sqlalchemy.orm import scoped_session, sessionmaker

# 第一步：连接到 MySQL 服务器，不指定数据库
engine = create_engine('mysql+pymysql://root:12345678@localhost')

# 第二步：创建数据库
with engine.connect() as connection:
    connection.execute(text('CREATE DATABASE IF NOT EXISTS mydatabase'))

# 第三步：重新连接到新创建的数据库
engine = create_engine('mysql+pymysql://root:12345678@localhost/mydatabase',
                       echo=True,  # 开启日志记录，默认为 False
                       pool_size=10,  # 连接池中保持的最小连接数
                       max_overflow=20,  # 允许超过 pool_size 的最大连接数
                       pool_timeout=30,  # 池达到最大数量后等待可用连接的最大秒数
                       pool_recycle=-1  # 自动回收连接前的秒数；-1 表示不自动回收
                       )

db_session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine))